#pragma once
#include "DataStructure/Common/Id.h"
#include "DataStructure/Common/Real.h"

SG_DATASTRUCTURE_POST_NAMESPACE_OPEN

struct BARStrainData
{
    SG::DataStructure::Common::Id   m_eId      = 0;    /// Element identification number
    SG::DataStructure::Common::Real m_X1A      = 0.0;  /// SA1
    SG::DataStructure::Common::Real m_X2A      = 0.0;  /// SA2
    SG::DataStructure::Common::Real m_X3A      = 0.0;  /// SA3
    SG::DataStructure::Common::Real m_X4A      = 0.0;  /// SA4
    SG::DataStructure::Common::Real m_AX       = 0.0;  /// Axial
    SG::DataStructure::Common::Real m_MAXA     = 0.0;  /// SA maximum
    SG::DataStructure::Common::Real m_MINA     = 0.0;  /// SA minimum
    SG::DataStructure::Common::Real m_MST      = 0.0;  /// Margin of Safety in Tension
    SG::DataStructure::Common::Real m_X1B      = 0.0;  /// SB1
    SG::DataStructure::Common::Real m_X2B      = 0.0;  /// SB2
    SG::DataStructure::Common::Real m_X3B      = 0.0;  /// SB3
    SG::DataStructure::Common::Real m_X4B      = 0.0;  /// SB4
    SG::DataStructure::Common::Real m_MAXB     = 0.0;  /// SB maximum
    SG::DataStructure::Common::Real m_MINB     = 0.0;  /// SB minimum
    SG::DataStructure::Common::Real m_MSC      = 0.0;  /// Margin of Safety in Compression
    SG::DataStructure::Common::Id   m_domainId = 0;    /// Domain identifier
};

///< @brief 判断数据是否相等
DECLSPEC bool operator== (const BARStrainData& val1, const BARStrainData& val2);

///< @brief 排序使用
DECLSPEC bool operator< (const BARStrainData& a, const BARStrainData& b);

SG_DATASTRUCTURE_POST_NAMESPACE_CLOSE
